# python包

# 1. 什么是python包
"""
如果说模块是一个.py文件, 那么包就是管理这些.py文件的文件夹。
包内除了有很多.py文件之外, 还有一个__init__.py文件，这个
__init__.py就是标识该文件夹是包；如果没有这个文件，那么就是
普通的文件

综上, 包的作用就是当模块文件非常多的时候, 包可以帮助我们管理这些
模块。但包的本质依然是模块。
"""

# 2. 如何创建包
# [new] -> [Python Package] -> ...

# 3. 如何导入包
"""
方式一
导入: import 包名.模块名
使用: 包名.模块名.目标

方式二:
导入: from 包 import 模块名
使用: 模块名.目标

方式三: 导入具体的功能
导入:from 包.模块名 import 功能
使用: 功能名

方式四: 在__init__.py文件中添加__all__=[],控制允许导入的模块列表
只能控制 import *，这时只有__all__列表的模块可以使用
"""
# import my_package.mymodule1
# import my_package.mymodule2
# my_package.mymodule1.info_print1()
# my_package.mymodule2.info_print2()

# from my_package import mymodule1
# from my_package import mymodule2
# mymodule1.info_print1()
# mymodule2.info_print2()

# from my_package.mymodule1 import info_print1
# from my_package.mymodule2 import info_print2
# info_print1()
# info_print2()

# from my_package import *
# mymodule1.info_print1()

# 四、安装第三方包
# 4.1 什么是第三方包
"""
我们知道，包可以包含一堆的Python模块，而每个模块又内含许多的功能。
所以，我们可以认为:一个包，就是一堆同类型功能的集合体。

在Python程序的生态中，有许多非常多的第三方包(非Python官方)，可以极大的帮助我们提高开发效率，如:
1. 科学计算中常用的:numpy包
2. 数据分析中常用的:pandas包
3. 大数据计算中常用的:pyspark、apache-flink包
4. 图形可视化常用的:matplotlib、pyecharts
5. 人工智能常用的:tensorflow
等
但因为这些包不是python官方的，因此python没有内置，所以需要安装才能使用
"""

# 4.2 如何安装第三方包
"""
pip install 包名
注意: pip程序是连接国外的网站进行下载，所以下载速度会很慢

我们可以通过如下命令，让其连接国内的网站进行包的安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称
"""
